import request from '@/utils/request'

// 获取商品列表
export function listProducts(params) {
  // 处理分页和排序参数
  const { page = 1, pageSize = 10, ...restParams } = params
  
  // 构建查询参数
  const queryParams = {
    page: page - 1, // 后端分页从0开始
    size: pageSize,
    sort: 'productId,asc', // 修改为字符串格式
    ...restParams
  }

  // 移除未定义的参数
  Object.keys(queryParams).forEach(key => {
    if (queryParams[key] === undefined || queryParams[key] === '') {
      delete queryParams[key]
    }
  })

  return request({
    url: '/api/products',
    method: 'get',
    params: queryParams,
    paramsSerializer: params => {
      return Object.entries(params)
        .map(([key, value]) => {
          if (Array.isArray(value)) {
            return value.map(v => `${key}=${encodeURIComponent(v)}`).join('&')
          }
          return `${key}=${encodeURIComponent(value)}`
        })
        .join('&')
    }
  })
}

// 获取商品详情
export function getProduct(id) {
  return request({
    url: `/api/products/${id}`,
    method: 'get'
  })
}

// 创建商品
export function createProduct(data) {
  return request({
    url: '/api/products',
    method: 'post',
    data
  })
}

// 更新商品
export function updateProduct(id, data) {
  return request({
    url: `/api/products/${id}`,
    method: 'put',
    data
  })
}

// 删除商品
export function deleteProduct(id) {
  return request({
    url: `/api/products/${id}`,
    method: 'delete'
  })
} 